The iSCSI (Internet Small Computer System Interface) is a networking protocol for carrying SCSI (Small Computer System Interface) commands from an initiator (e.g., host, client) to a target (e.g., a storage system) over IP (Internet Protocol) networks.
Multipathing is a technique for defining multiple I/O paths through which the initiator can reach a storage resource in the target. Multipathing allows accessing a single storage device through multiple paths that facilitate load-balanced and redundant access.
When using iSCSI, I/O paths are defined as TCP sessions between the host and the storage system. A session may include one or more TCP connections.
Chapter 7 of the iSCSI RFC 3270 describes thirteen valid states of an iSCSI connection (some are applicable to target only or to an initiator only), more than twenty connection state transitions, four session states and seven session state transitions. The connection state can influent the session that includes that connection, for example: when a first connection among connections participating in a session is transitioned to Logged_In state, the session state is transitioned from Active state to Logged_In; when at least one connection is established for the session, the session state transitions from a Free state to Active state; When the last connection that was in a Logged_in state ceased to be in Logged_In state, the session state changes from Logged_in state to Active state or failed state.
Given the complexity imposed by the numerous states and state transitions, and given that the initiator manages its own state machines independently from the state machines handled by the target, there may be situations where a state of a path, as defined in the host, conflicts the state of a path as defined at the storage system. For example, the host state for a certain path is defined as Logged-In while the storage state for the same path is defined as Free or Failed.
Once the host and the storage system loose synchronization with regard to a state of a session, the path cannot be recovered automatically and manual intervention is required. The loss of synchronization with regard to a state of a session that serves as a data path can lead to cases where the host sees multiple active paths while in fact there is only one path. This is a situation having a potential point of failure. In other cases, the storage may see multiple sessions, while the host sees only one session or none.
The loss of synchronization with regard to a state of a session between the storage and host has no resolution today in the iSCSI protocol. Therefore, there are some data centers that prefer using Fibre Channel instead of iSCSI between the host and the storage system.
There is a need to improve the resilience of paths and avoid dead-ends due to state consistency problems that are not resolved by the iSCSI protocol.